Skip to main content
Version: v5.0

project

$project

Control the fields you want to include or not in the documents you pass to the next stage in the pipeline.

You can project with the following objectives:

  • Include only specific fields
  • Exclude specific fields
  • Create a new field that has a computed value

Note: If you exclude fields, you cannot also specify fields to include.

Syntax

{ $project: { specification(s) } }

For more information, see the following specification examples:

ExampleResult
{ $project: { field1: 1 } }Only field1 and its value project to the next stage in the pipeline.
{ $project: { field1: 0 } }All fields except field1 project to the next stage in the pipeline.
{ $project: { newField: { $add: ["field1", "field2"} }Projects a newly created field, newField, with a computed value to the next stage in the pipeline.

Sample Request

[
{
"$match": {
"temp": {
"$exists": true
}
}
},
{
"$project": {
"temp": 1,
"_ts": 1
}
},
{
"$sort": {
"_ts": 1
}
},
{
"$limit": 3
}
]

Sample Response

{
"_list": [
{
"temp": 368,
"_id": "645bca63f8b8a87c0f075ce9",
"_ts": "Wed May 10 22:16:26 IST 2023"
},
{
"temp": 871,
"_id": "645bca63f8b8a87c0f075cea",
"_ts": "Wed May 10 22:16:26 IST 2023"
},
{
"temp": 777,
"_id": "645bca63f8b8a87c0f075ceb",
"_ts": "Wed May 10 22:16:27 IST 2023"
}
]
}